Systems in which many devices share a common resource, such as a data bus, utilize bus allocation arrangements for systematically controlling device access to the data bus. According to the type of bus allocation arrangement being used, certain devices are granted bus access on a preferred basis over other devices regardless of the order in which the devices requested access. Devices requesting bus access but not receiving preferential bus allocation treatment experience delays in gaining bus access. In certain situations, the delay can increase to such an extent that a device is effectively denied access to the data bus. This situation is commonly known as a lockout.
In a fixed priority bus allocation arrangement, each device is assigned a permanent priority. In such arrangements, an arbiter applies a predetermined arbitration rule to resolve contentions among several devices simultaneously requesting bus access. Application of one such rule causes contentions to be resolved in favor of a device whose fixed priority is higher than the fixed priorities of other contending devices. By repeated application of this arbitration rule, the arbiter clearly exhibits a preference for high priority devices. Therefore, long delays in obtaining bus access are common for low priority devices simultaneously contending for bus access with high priority devices. Consequently, the arbiter contributes to causing lockouts by increasing the delay from bus request to bus access.
One common situation in which the arbiter, applying the arbitration rule described above, causes lockouts is when two high priority devices alternate in contending for bus access simultaneously with a lower priority device. Contentions between either one of the two high priority devices and the lower priority device are never resolved in favor of the lower priority device. Thus, the lower priority device is locked out from access to the data bus.